/*
 * Xor.cpp
 *
 *  Created on: 24/11/2009
 *      Author: emiliano
 */

#include "Xor.h"


bool Xor:: calcular_salida(int nro_salida,int& t_transicion){
	//std::cout<<"pidiendo salida a: "<<entrada_1->get_id()<<" y "<<entrada_2->get_id()<<std::endl;
	if(ready()){
		bool entrada_uno =((entrada_1->get_emisor())->calcular_salida(entrada_1->get_nro_salida(),t_transicion));
		bool entrada_dos =((entrada_2->get_emisor())->calcular_salida(entrada_2->get_nro_salida(),t_transicion));
		t_transicion+=tiempo_transicion;

		if(((entrada_uno) && (!entrada_dos))||((!entrada_uno)&&(entrada_dos)))
			return true;
		else
			return false;
	}
	else throw NoSimulacionExcepcion();//Una o mas salidas estaban desconectadas
}

